<script setup lang="ts">
import { ref } from 'vue'

// ts得这样写
// <>叫做泛型，约束传过来的值
defineProps<{ msg: string }>()

type Person = {
  name: string
  age: number
}

const count = ref(0)
// 我们将在在写项目的时候，要通过类型断言as，把他们断言成更加 具体 的对象和数组
const person = ref({} as Person)
const list = ref([] as Person[])
</script>

<template>
  <h1>{{ msg }}</h1>

  <div class="card">
    <button type="button" @click="count++">count is {{ count }}</button>
    <p>
      Edit
      <code>components/HelloWorld.vue</code> to test HMR
      {{ person.name }}
    </p>
  </div>
  <ul>
    <li v-for="item in list">{{ item.name }} {{ item.age }}</li>
  </ul>
  <p>
    Check out
    <a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
      >create-vue</a
    >, the official Vue + Vite starter
  </p>
  <p>
    Install
    <a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>
    in your IDE for a better DX
  </p>
  <p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
</template>

<style scoped>
.read-the-docs {
  color: #888;
}
</style>
